Package ::= Header Imports Body

Header ::=
Header ::= package Name

Imports ::=
Imports ::= Imports Import

Import ::= import Name

Body ::=
Body ::= Body Element

Element ::= "var" Name
Element ::= "var" Name "=" Expr

Expr[$] ::= SumExpr

SumExpr[$] ::= MulExpr
SumExpr ::= SumExpr "+" MulExpr

MulExpr[$] ::= MoleculeExpr
MulExpr ::= MulExpr "*" MoleculeExpr

MoleculeExpr[$] ::= AtomicExpr
MoleculeExpr ::= "(" Expr ")"

AtomicExpr[$] ::= .name
AtomicExpr[$] ::= .integer
